/*
 * Mundo.h
 *
 *  Created on: 06/10/2013
 *      Author: Pablo
 */

#ifndef MUNDO_H_
#define MUNDO_H_

#include <Box2D/Box2D.h>
#include "../ui/Ventana.h"
#include "../fisica/CollitionListener.h"

class Mundo {

private:
	b2World* mundo;
	Ventana* ventana;
	CollitionListener* collitionListener;

public:
	Mundo(Ventana*);
	void inicializar();
	virtual ~Mundo();
	b2Body* crearPelota(float32 posX, float32 posY, float32 radio, float32 densidad, float32 restitucion);
	b2Body* crearGlobo(float32 posX, float32 posY, float32 radio, float32 densidad);
	b2Body* crearBolaBowling(float32 posX, float32 posY, float32 radio, float32 densidad, float32 friccion, float32 restitucion);
	b2Body* crearViga(float32 tamanio, float32 angulo, float32 posX, float32 posY, float32 densidad);
	b2World* getWorld();
	void simulateStep();
	void destruirObjetosEliminados();
	void detectarCortesTijera(list<Elemento*>* listaElementos, Elemento* tijera);
	void eliminarRecursivo(Elemento* aEliminar);

};

#endif /* MUNDO_H_ */
